package com.caesi.tacacaesifinal;

import java.util.List;

import com.caesi.tacacaesifinal.dao.EquipeDAO;
import com.caesi.tacacaesifinal.dao.JogoDAO;
import com.caesi.tacacaesifinal.dao.SQLiteHelper;
import com.caesi.tacacaesifinal.model.Equipe;
import com.caesi.tacacaesifinal.model.Jogo;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class ListarJogos extends Activity implements OnItemClickListener,
OnClickListener {
	public static final String ID_CAMPEONATO = "ID_CAMPEONATO";
	public static final String ID_JOGO = "ID_JOGO";
    private static final Long ERROR = -1L;
    private List<Jogo> jogos;
    private SQLiteHelper sqLiteHelper;
    private ListView listaJogos;
    private JogoAdapter jogoAdapter;
    private Jogo jogoSelecionado;
    private Long idCampeonato;
    private ImageView adicionar;
    private ImageView editar;
    private ImageView remover;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lista_jogos);
      
        this.listaJogos = (ListView) findViewById(R.id.lista_de_jogos);

        adicionar = (ImageView) findViewById(R.id.imageView1);

        editar = (ImageView) findViewById(R.id.imageView2);

        remover = (ImageView) findViewById(R.id.imageView3);

        listaJogos.setOnItemClickListener(this);

        adicionar.setOnClickListener(this);
        adicionar.setTag(1);

        editar.setOnClickListener(this);
        editar.setTag(2);

        remover.setOnClickListener(this);
        remover.setTag(3);

        Intent i = getIntent();
        idCampeonato = i.getLongExtra(ID_CAMPEONATO, ERROR);
        sqLiteHelper = new SQLiteHelper(getApplicationContext());

        if (idCampeonato != ERROR) {
            fillJogoList();
        }
    }
    
    @Override
    public void onResume(){
        super.onResume();
        fillJogoList();
    }

    private void fillJogoList() {
        if (listaJogos == null) {
            listaJogos = (ListView) findViewById(R.id.lista_de_jogos);
        }

        JogoDAO dao = sqLiteHelper.getJogoDAO();
        jogos = dao.retrieveAllOfCampeonato(idCampeonato);
        jogoAdapter = new JogoAdapter(getApplicationContext(), jogos);
        listaJogos.setAdapter(jogoAdapter);
        listaJogos.setCacheColorHint(Color.TRANSPARENT);
    }

    @Override
    public void onClick(View v) {
        int tag = (Integer) v.getTag();
        switch (tag) {
        case 1:

            Intent i = new Intent(this, AdicionarJogo.class);

            i.putExtra(ListarJogos.ID_CAMPEONATO, idCampeonato);

            startActivity(i);

            break;

        case 2:
            if (jogoSelecionado == null) {
                Toast.makeText(this, "Selecione Um Jogo para Editar..",
                        Toast.LENGTH_LONG).show();
            } else {
                Intent editar = new Intent(this, AdicionarJogo.class);
                editar.putExtra(ListarJogos.ID_JOGO,jogoSelecionado.getId());
                startActivity(editar);
                jogoSelecionado = null;
            }

            break;

        case 3:

            if (jogoSelecionado == null) {
                Toast.makeText(this, "Selecione um jogo para remover..",
                        Toast.LENGTH_LONG).show();
            } else {
                JogoDAO jogoDAO = sqLiteHelper.getJogoDAO();
                jogoDAO.delete(jogoSelecionado);
                Toast.makeText(this, "Jogo Removido", Toast.LENGTH_LONG)
                        .show();
                jogoSelecionado = null;
                fillJogoList();
            }

            break;

        default:
            break;

        }

    }

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        jogoSelecionado = (Jogo) jogoAdapter.getItem(arg2);
        jogoAdapter.setSelectedView(arg1, arg2);
    }

}
